#include "date.h"

void test1(void)
{
	Date d1(2022,4,1);
	d1.print();
	Date d2(2022,5,25);
	d2.print();
	Date d3(d1);
	d3.print();
	Date d4;
	d4 = d2;
	d4.print();
}

void test2(void)
{
	Date d1(2022, 4, 1);
	d1.print();
	Date d2(2022, 5, 25);
	d2.print();
	std::cout << (d1 == d2) << std::endl;
	std::cout << (d1 > d2) << std::endl;
	std::cout << (d2 > d1) << std::endl;
	std::cout << (d2 >= d1) << std::endl;
	std::cout << (d2 < d1) << std::endl;
	std::cout << (d1 <= d2) << std::endl;
	std::cout << (d1 != d2) << std::endl;
}

void test3(void)
{
	Date d1(2022, 5, 18);
	d1.print();
	Date d2;
	d2 = d1 + 9500;
	d2.print();
	d1.print();
	d1 = d1 + 9500;
	d1.print();
	d2 = d1-9500;
	d2.print();
	d1 = d1 - 9500;
	d1.print();
}

void test4(void)
{
	Date d1(2022, 5, 31);
	d1.print();
	++d1;
	d1.print();
	Date d4 = d1++;
	d4.print();
	d1.print();
	--d1;
	d1.print();
	Date d5 = d1--;
	d5.print();
	d1.print();
	Date d2(2028, 2, 9);
	std::cout << d1 - d2 << std::endl;
	std::cout << d2 - d1 << std::endl;
}

//void Print(Date* const this)
//{
//	cout << _year << "-" << _month << "-" << _day << endl;
//}
//
//
////void Print() const
//void Print(const Date* const this)
//{
//	cout << _year << "-" << _month << "-" << _day << endl;
//}

void Func(const Date& d)
{
	d.print(); // d1.Print(&d); -> const Date*
}

void test5()
{
	Date d1(2022, 5, 18);
	d1.print(); // d1.Print(&d1); -> Date* 
	Func(d1);
	std::cout << &d1 << std::endl;
}

int main()
{
	//test1();
	//test2();
	//test3();
	//test4();
	test5();

	return 0;
}